  import 'package:flutter/material.dart';
import 'package:study/list/chapterone.dart';

class ChapterOne extends StatefulWidget {
  @override
  _ChapterOneState createState() => _ChapterOneState();
}

class _ChapterOneState extends State<ChapterOne> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
        body: CustomScrollView(slivers: <Widget>[
      SliverAppBar(
        title: Text('第一章'),
        centerTitle: true,
        // 展开的高度
        expandedHeight: 200.0,
        // 强制显示阴影
        forceElevated: false,
        // 设置该属性，当有下滑手势的时候，就会显示 AppBar
//        floating: true,
        // 该属性只有在 floating 为 true 的情况下使用，不然会报错
        // 当上滑到一定的比例，会自动把 AppBar 收缩（不知道是不是 bug，当 AppBar 下面的部件没有被 AppBar 覆盖的时候，不会自动收缩）
        // 当下滑到一定比例，会自动把 AppBar 展开
//        snap: true,
        // 设置该属性使 Appbar 折叠后不消失
//        pinned: true,
        // 通过这个属性设置 AppBar 的背景
        flexibleSpace: FlexibleSpaceBar(
//          title: Text('Expanded Title'),
          // 背景折叠动画
          collapseMode: CollapseMode.parallax,
          background: Image.network(
            "http://pics.sc.chinaz.com/files/pic/pic9/201803/zzpic10835.jpg",
            fit: BoxFit.cover,
          ),
        ),
      ),

      // 这个部件一般用于最后填充用的，会占有一个屏幕的高度，
      // 可以在 child 属性加入需要展示的部件
      SliverFillRemaining(
        child: Card(
            margin: EdgeInsets.all(10),
            child: ListView.separated(
                itemBuilder: (BuildContext context, int index) {
                  return ListTile(
                    leading: CircleAvatar(
                      backgroundImage: NetworkImage(chapterone[index]["url"]),
                    ),
                    title: Text(chapterone[index]["title"]),
                    onTap: () {
                      showDialog(
                          context: context,
                          builder: (context) => AlertDialog(
                            title: Text(chapterone[index]["title"]),
                            content: Text(chapterone[index]["description"]),
                            actions: <Widget>[
                              new FlatButton(
                                child: new Text("确定"),
                                onPressed: () {
                                  Navigator.of(context).pop();

                                },
                              ),
                            ],
                          ));
                    },
                  );
                },
                separatorBuilder: (BuildContext context, int index) {
                  return new Container(
                    height: 20.0,
                  );
                },
                itemCount: chapterone.length)),
      )
    ]));
  }
}
